package com.qili.util;

/**
 * 处理系统版本号的工具类
 */
public class VersionUtil {

    /**
     * 对比两个版本号大小
     * 线上版本 大则返回一个正数,本地版本 大返回一个负数,相等则返回0
     * @param onLineV 线上版本
     * @param localV 本地版本 -最新版本
     * @return
     * @throws Exception
     */
    public static int compareVersion(String onLineV, String localV) {
        // 此处为正则匹配，不能用"."； v: 1.0.0
        String[] onLineArr = onLineV.split("\\.");
        String[] localArr = localV.split("\\.");
        int index = 0;
        //获取最小长度值
        int minLen = Math.min(onLineArr.length, localArr.length);
        int diff = 0;
        while (index < minLen && (diff = Integer.parseInt(onLineArr[index]) - Integer.parseInt(localArr[index])) == 0) {
            index++;
        }
        if (diff == 0) {
            //如果位数不一致，比较多余位数
            for (int i = index; i < onLineArr.length; i++) {
                if (Integer.parseInt(onLineArr[i]) > 0) {
                    return 1;
                }
            }

            for (int i = index; i < localArr.length; i++) {
                if (Integer.parseInt(localArr[i]) > 0) {
                    return -1;
                }
            }
            return 0;
        } else {
            return diff > 0 ? 1 : -1;
        }
    }


    }
